package entities;

/**
 * Entity Actions
 * @author Mateusz
 */
public interface Actions {

    /**
     * Entity actions
     */
    enum EntityActions implements Actions {

        /**
         * Do nothing
         */
        NONE
    }

    /**
     * Builder actions
     */
    enum BuilderActions implements Actions {
        
        /**
         * Stop
         */
        STOP,
        /**
         * Build gas factory
         */
        BUILD_GAS_FACTORY,
        /**
         * Build diamond factory
         */
        BUILD_DIAMOND_FACTORY
    }

    /**
     * Worker actions
     */
    enum WorkerActions implements Actions {

        /**
         * Get supply
         */
        GET_SUPPLY,
        /**
         * Return supply to factory
         */
        GIVE_SUPPLY
    }

    /**
     * Transporter actions
     */
    enum TransporterActions implements Actions {
        /**
         * Factory actions - leave carried supply, get next target and decide what load
         */
        LEAVE_SUPPLY_AND_DECIDE_WHAT_LOAD,
        /**
         * leave carried supply and load opposite to your factory-mother extracted
         */
        LEAVE_AND_LOAD
    }
}
